import advView from '$v/adv' //引入adv视图

import {
  isLoginRequest, //引入权限验证api
  logoutRequest, //引入退出登录api
  adminNameRequest, //引入查询用户名api
} from '../api/admin'

export default async (req, res, next) => {
  //路由切换的时候验证登录
  try {
    await isLoginRequest();
  } catch (e) {
    //请求异常后提示用户
    alert("有异常" + e.message)

    //判断是否是权限异常
    if (!e.isLogin) {
      return router.go("/login");
    }
  }

  //发送请求获取用户名
  try {
    const findResult = await adminNameRequest();
    const {
      adminName
    } = findResult.data


    //读完一级路由 需要去读二级路由,所以要调用next方法
    // res有一个subRoute方法,调用该方法可以得到一个二级路由存放的标识,我们可以把这个标识传递给ejs,放在对应的位置即可
    next(advView({
      subRoute: res.subRoute(),
      //给adv主页传递一个路径,方便在页面内进行url比较进行高亮显示
      url: req.url,
      userName: adminName
    }));



  } catch (e) {
    alert("查询用户名异常" + e.message)
    //判断是否是权限异常 没有token权限就跳到登录页面
    if (!e.isLogin) {
      return router.go("/login");
    }


  }







  //获取退出登录按钮
  const oLogout = document.getElementById('logout')

  //给退出登录按钮绑点击事件发送退出登录请求
  oLogout.onclick = async function () {

    //给退出登录按钮一个提示
    const re = confirm('退出登录,您的电脑将在10s后爆炸!!!')
    if(!re){
      return
    }

    try {
      await logoutRequest();

      //退出成功 清掉token
      localStorage.removeItem("user_token");

      //跳转到登录页面
      router.go('/login')

    } catch (e) {
      alert("退出登录异常" + e.message)

      //判断是否是权限异常 没有token权限就跳到登录页面
      if (!e.isLogin) {
        return router.go("/login");
      }


    }
  }


}